<?php

require_once 'conexion.php';
require_once 'especialidad.php';

class persistenciaEspecialidad {

    private static $instancia;

    public static function getInstance() {
        if (!self::$instancia instanceof self) {
            self::$instancia = new self;
        }
        return self::$instancia;
    }

    public function traerEspecialidades($dato) {
        try {
            require_once 'Conexion.php';
            require_once 'Especialidad.php';
            $db = Conexion::getInstance();
            if ($dato == "") {
                $sentencia = "SELECT * FROM especialidades  order by descripcion";
                $res = $db->consulta($sentencia);
                $espec = Array();
                foreach ($res as $esp) {
                    $datos = Array($esp[0], $esp[1]);
                    array_push($espec, new especialidad($datos));
                }
            } else {
                $sentencia = "SELECT * FROM especialidades where idEspecialidades=" . $dato;
                $res = $db->consulta($sentencia);
                $espec = new especialidad(Array($res[0][0], $res[0][1]));
            }
            return $espec;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function crearEspecialidad($datos) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "INSERT INTO especialidades (descripcion) VALUES('" . $datos[0] . "')";
            $db->consulta($sentencia);
            return true;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function actualizarEspecialidad($datos) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "UPDATE especialidades set descripcion = '" . $datos[0] . "' where idEspecialidades = " . $datos[1];
            $db->consulta($sentencia);
            return true;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function eliminarEspecialidad($id) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "delete from especialidades where idespecialidad = " . $id;
            $db->consulta($sentencia);
            return true;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

}

?>
